class AnalyzeWebpackPlugin {
  apply(compiler){
    compiler.hooks.emit.tap("AnalyzeWebpackPlugin",(compilation)=>{
      // 1. 遍历所有即将输出文件，得到其大小
      /**
       * 将对象变成一个二维数组
       */
      const assets = Object.entries(compilation.assets);

      // 2. 生成一个md文件
      /**
       * md语法：
       *  ｜资源名称｜资源大小｜
       *  ｜---｜---｜
       *  ｜---.xx｜xxkb｜
       */
      let content = `| 资源名称 | 资源大小 |
|---|---|`;
      assets.forEach(([filename,file])=>{
        content+=`\n| ${filename} | ${file.size()}`
      });
      compilation.assets["analyze.md"] = {
        source(){
          return content
        },
        size(){
          return content.length;
        }
      }
    })
  }
}
module.exports = AnalyzeWebpackPlugin